package task11;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import task1.Student;

/**
 * Create by IntelliJ IDEA
 *
 * @author: jsonor
 * @date-Time: 2018/4/27 8:37
 * @description: HasMap 集合 添加元素、遍历
 */
public class Test2 {

  public static void main(String[] args) {
    HashMap<String, Student> studentHashMap=new HashMap<String,Student>();
    Student zs=new Student("zhangsan",18);
    Student ls=new Student("lisi",19);
    Student ww=new Student("wangwu",17);
    studentHashMap.put("s1",zs);
    studentHashMap.put("s2",ls);
    studentHashMap.put("s3",ww);
    /*遍历方式1、键找值
        1 获取所有键的集合
        2 遍历键的集合，得到每一个键
        3 根据键到集合中去找值
     */
    //得到的是所有键集合的迭代器
    Iterator iterator=studentHashMap.keySet().iterator();
    while (iterator.hasNext()){
//循环得到每一个键
      String key=(String) iterator.next();
//根据键来获取值
      Student value=studentHashMap.get(key);
      System.out.println(key+":"+value);

      /*遍历方式2：键值对对象找键和值（集合中元素多的时候，效率更高）
             1 获取所有的键值对对象的集合
             2 遍历键值对对象的集合，获取每一个键值对对象
             3 根据键值对对象去获取键和值
     */
      // 得到的是键值对对象集合的迭代器
      Iterator entryIterator=studentHashMap.entrySet().iterator();
      while (entryIterator.hasNext()){
        //循环得到的是没一对键值对对象
        Entry<String,Student> entry=(Entry<String,Student>) entryIterator.next();
        String key1 =entry.getKey();
        Student value1=entry.getValue();
        System.out.println(key1+"--"+value1);
      }


    }
  }
}
